/**
 * 
 */
package com.py.credit.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.py.framework.core.common.Page;

/**
 * @author dd
 *
 */
public interface SSearchDao {

	List<Map<String, Object>> selectByConditionForPage(@Param(value = "kId") String kId,
			@Param(value = "columns") List<String> showColumns,
			@Param(value = "additionalColumns") String[] additionalColumns, @Param(value = "page") Page page,
			@Param(value = "conditions") List<String> conditions);

	List<Map<String, Object>> selectTyshxydmTableListForPage(@Param(value = "condition") String condition,
			@Param(value = "page") Page page);

	List<Map<String, Object>> selectXyxxTableListForPage(@Param(value = "condition") String condition,
			@Param(value = "page") Page page);

	List<Map<String, Object>> selectFrxzxkDetail(@Param(value = "tybm") String tybm);

	List<Map<String, Object>> selectFrxzcfDetail(@Param(value = "tybm") String tybm);

	List<Map<String, Object>> selectZrrxzxkDetail(@Param(value = "tybm") String tybm);

	List<Map<String, Object>> selectZrrxzcfDetail(@Param(value = "tybm") String tybm);

	List<Map<String, Object>> selectFrJbxx(@Param(value = "tybm") String tybm);

	List<Map<String, Object>> selectZrrJbxx(@Param(value = "tybm") String tybm);

	List<Map<String, Object>> selectFrheimdDetail(@Param(value = "tybm") String tybm);

	List<Map<String, Object>> selectZrrheimdDetail(@Param(value = "tybm") String tybm);

	List<Map<String, Object>> selectFrHongmdDetail(@Param(value = "tybm") String tybm);

	List<Map<String, Object>> selectZrrHongmdDetail(@Param(value = "tybm") String tybm);

	List<Map<String, Object>> selectXzcfTableListForPage(@Param(value = "condition") String condition,
			@Param(value = "page") Page page);

	List<Map<String, Object>> selectXzxkTableListForPage(@Param(value = "condition") String condition,
			@Param(value = "page") Page page);

	List<Map<String, Object>> selectFrxzcfDetailByName(@Param(value = "name") String name);

	List<Map<String, Object>> selectZrrxzcfDetailByName(@Param(value = "name") String name);

	List<Map<String, Object>> selectFrxzxkDetailByName(@Param(value = "name") String name);

	List<Map<String, Object>> selectZrrxzxkDetailByName(@Param(value = "name") String name);

	List<Map<String, String>> selectUniqueAKeyWords(@Param(value = "kId") String kId,
			@Param(value = "input") String input);

	List<Map<String, String>> selectUniqueBKeyWords(@Param(value = "kId") String kId,
			@Param(value = "input") String input);

	List<Map<String, String>> selectUniqueCKeyWords(@Param(value = "kId") String kId,
			@Param(value = "input") String input);

	List<Map<String, Object>> selectCollectionStatistics();

	List<String> selectResource(String tybm);

	int selectRecordNum(@Param(value = "list") List<String> tableName, @Param(value = "tybm") String tybm);

	int selectXYDeptCount();

	int selectCubeCountFromCommonContentInUse();

	List<Map<String, Object>> selectSharingSearchHistoryList(@Param(value = "userId") long userId,
			@Param(value = "kId") String kId);

	Map<String, Object> selectUniqueList(Map<String, Object> map);

	void addHistory(@Param(value = "tybm") String tybm, @Param(value = "kId") String kId,
			@Param(value = "userId") long userId);

	int updateHistory(@Param(value = "tybm") String tybm, @Param(value = "kId") String kId,
			@Param(value = "userId") long userId);

	int selectQueriedNum(@Param(value = "tybm") String tybm);

	String selectTybm(@Param(value = "kId") String kId, @Param(value = "whereColumn") String whereColumn);

	List<Map<String, String>> selectUniqueByKeyForPage(@Param(value = "kId") String kId,
			@Param(value = "whereSql") String whereSql, @Param(value = "page") Page page);

	List<Object> getDataList(@Param(value = "tablename")String tablename, @Param(value = "tybm")String tybm);

	Map<String, Integer> selectInfoDetailLog(@Param(value = "qymc")String qymc,@Param(value = "tybm") String tybm);

	void updateInfoDetailLog(@Param(value = "qymc")String qymc,@Param(value = "tybm")String tybm);

	void addInfoDetailLog(@Param(value = "qymc")String qymc, @Param(value = "tybm")String tybm);

	
	/**
	 * @Title: getXzcfList
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param tablename
	 * @param @param qymc
	 * @param @return    设定文件
	 * @return List<Object>    返回类型
	 * @throws
	*/
	
	List<Object> getXzcfList(@Param(value = "tablename")String tablename, @Param(value = "tybm")String tybm);

	List<Object> getxyhcDataList(@Param(value = "tablename")String tablename, @Param(value = "qymc")String qymc);

	
	/**
	 * @Title: getXzXkList
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param tablename
	 * @param @param tybm
	 * @param @return    设定文件
	 * @return List<Object>    返回类型
	 * @throws
	*/
	
	List<Object> getXzXkList(@Param(value = "tablename")String tablename, @Param(value = "tybm")String tybm);

}
